<?

/*
    posttype risorsa

*/




// fissa gli hook
function wpf_risorsa_hooks()
{
    // crea il plugin ed i relativi menu
    register_activation_hook(__FILE__, 'wpf_risorsa_rewrite_flush');  // serve per i permalink
    
    // inizializza il posttype
    add_action('init', 'wpf_risorsa_init');
    add_action('init', 'wpf_risorsa_box_init');


    // personalizzo la tabella
    add_filter('manage_wpf_risorsa_posts_columns','wpf_risorsa_list_column_header'); // aggiunge la colonna "azienda" alla lista dei fascicoli
    add_filter('manage_wpf_risorsa_posts_sortable_columns', 'wpf_risorsa_list_sort_columns' ); // rende ordinabile per una colonna
    add_action('manage_wpf_risorsa_posts_custom_column',  'wpf_risorsa_list_column_row', 10, 2 ); // riempie la colonna azienda alla lista dei fascicoli

}

function wpf_risorsa_rewrite_flush()
{
	wpf_risorsa_init();
	flush_rewrite_rules();
}

// inizializza quello che serve
function wpf_risorsa_init() {

// creazione del posttype
  $labels = array(
    'name' => __('Risorse',WPF_DOMAIN),
    'singular_name' => __('Risorsa',WPF_DOMAIN),
    'add_new' => __('Aggiungi nuova risorsa',WPF_DOMAIN),
    'add_new_item' => __('Nuova risorsa',WPF_DOMAIN),
    'edit_item' => __('Modifica risorsa'),
    'new_item' => __('Nuova risorsa'),
    'all_items' => __('Tutte le risorse'),
    'view_item' => __('Visualizza questa risorsa'),
    'search_items' => __('Cerca una risorsa'),
    'not_found' =>  __('Nessuna risorsa trovata'),
    'not_found_in_trash' => __('Non ci sono risorse nel cestino'),
    'parent_item_colon' => '',
    'menu_name' => 'Risorse'
  );

  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => array('slug' => 'risorsa'),
    'capability_type' => array('risorsa', 'risorse'),
    'map_meta_cap' => true,
    'has_archive' => true,
    'hierarchical' => true,
    'menu_position' => null,
    'supports' => array('title')
  );
  
  register_post_type('wpf_risorsa', $args);

  // creo la tassonomia per questo customtype
  $labels = array(
    'name' => _x( 'Tipo di risorsa', 'taxonomy general name' ),
    'singular_name' => _x( 'Tipo', 'taxonomy singular name' ),
    'search_items' =>  __( 'Cerca Tipi risorse' ),
    'all_items' => __( 'Tutti i Tipi di risorsa' ),
    'parent_item' => __( 'Tipo superiore' ),
    'parent_item_colon' => __( 'Tipo Superiore:' ),
    'edit_item' => __( 'Modifica Tipo' ),
    'update_item' => __( 'Aggiorna Tipo' ),
    'add_new_item' => __( 'Aggiungi Nuovo Tipo' ),
    'new_item_name' => __( 'Nome del Tipo' ),
    'menu_name' => __( 'Tipo' ),
  );

	

	wpf_risorsa_tassonomie_init();
        
   
}

function wpf_risorsa_tassonomie_init()
{
	wpf_tassonomia_registra_tipologia('wpf_risorsa');
	wpf_tassonomia_registra_competenza('wpf_risorsa');
}

// aggiunge i boxes necessari a
function wpf_risorsa_box_init()
{
	wpf_risorsa_anagrafica_box();
	//wpf_risorsa_assegnazioni_box();
	wpf_risorsa_contratti_box();
}

function wpf_risorsa_anagrafica_box()
{

        $users_list = get_users(wpf_get_query('utenti_risorse'));
	$users = '';

	foreach ($users_list as $user)
	{
		$users .= $user->user_login.',';
	}
	
	$readonly = false;

	$form_fields = array(
           'Nominativo' => array(
                'type' => 'text',
                'description' => __("Nominativo", WPF_DOMAIN ), 
                'howto' => __("Inserisci qui Nome e Cognome (se la persona ha 2 nomi, separa il nome dal cognome con 2 spazi) o Ragione Sociale o Denominazione del bene o il Nome del servizio", WPF_DOMAIN )
            ),
            'dettagli' => array(
                'type' => 'text', 
                'description' => __("Dettagli", WPF_DOMAIN ), 
                'howto' => __("Inserisci qui i dettagli", WPF_DOMAIN )
            ),
            'identificativo' => array(
                'type' => 'smalltext', 
                'description' => __("Codice identificativo", WPF_DOMAIN ), 
                'howto' => __("Inserisci qui un codice breve ed univoco per l\'identificazione", WPF_DOMAIN )
            ),
	        'codice_fiscale' => array(
                'type' => 'text',
                'description' => __("Codice Fiscale", WPF_DOMAIN ), 
                'howto' => __("Inserisci qui il codice fiscale", WPF_DOMAIN )
            ),
    	    'partita_iva' => array(
                'type' => 'text',
                'description' => __('Partita IVA',WPF_DOMAIN),
                'howto' => __('Inserisci qui la partita iva', WPF_DOMAIN)
        	),
            'responsabile' => array(
                'type' => 'text',
                'description' => __('Responsabile', WPF_DOMAIN),
                'howto' => __('Inserisci qui il responsabile legale se è una azienda, il nome del proprietario se è un bene, il nome del fornitore se è un servizio', WPF_DOMAIN),
        	),
            'proprietario' => array(
                'type' => 'text',
                'description' => __('Proprietario', WPF_DOMAIN),
				'howto' => __('Inserisci qui il proprietario del bene', WPF_DOMAIN)
        	),
            'fornitore' => array(
                'type' => 'text',
                'description' => __('Fornitore del servizio', WPF_DOMAIN),
		'howto' => __('Inserisci qui il fornitore', WPF_DOMAIN)
        	),
            'posizione_inps' => array(
                'type' => 'smalltext',
                'description' => __('Posizione INPS', WPF_DOMAIN),
				'howto' => __('Inserisci qui la posizione INPS', WPF_DOMAIN)
        	),
            'riga_indirizzo' => array(
               'type' => 'break',
                'description' => __('Indirizzo e recapito', WPF_DOMAIN)
                ),
            'citta' => array(
                'type' => 'text',
                'description' => __('Città', WPF_DOMAIN),
				'howto' => __('Inserisci qui la città', WPF_DOMAIN)
        	),
        	'indirizzo' => array(
                'type' => 'text',
                'description' => __('Indirizzo', WPF_DOMAIN),
				'howto' => __('Inserisci qui l\'indirizzo', WPF_DOMAIN)
        	),
        	'telefono' => array(
                'type' => 'smalltext',
                'description' => __('Telefono', WPF_DOMAIN),
				'howto' => __('Inserisci qui il numero di telefono', WPF_DOMAIN)
        	),
        	'fax' => array(
                'type' => 'smalltext',
                'description' => __('FAX',WPF_DOMAIN),
				'howto' => __('Inserisci qui il numero di fax', WPF_DOMAIN)
        	),
        	'email' => array(
                'type' => 'text',
                'description' => __('Email',WPF_DOMAIN),
				'howto' => __('Inserisci qui l\'indirizzo email', WPF_DOMAIN)
        	)
			,
        	'note' => array(
                'type' => 'text',
                'description' => __('note',WPF_DOMAIN),
				'howto' => __('Inserisci qui le note', WPF_DOMAIN)
        	)
			,
	   'data_inserimento' => array(
                'type' => 'date',
                'description' => __('Data inserimento',WPF_DOMAIN),
				'howto' => __('Data di inserimento della risorsa', WPF_DOMAIN)
        	),
            
           'responsabile' => array(
                'type' => ($readonly ? 'readonly' : 'select'),
                'values' => $users,
                'description' => __('Responsabile',WPF_DOMAIN),
                'howto' => __('Seleziona un utente responsabile o associato  alla risorsa', WPF_DOMAIN),
        	)
    	);

	register_post_box('wpf_risorsa', 'anagrafica_risorsa', 'Anagrafica risorsa', 'normal', 'core', $form_fields);
}

function wpf_risorsa_assegnazioni_box()
{
	global $post;

        
        
	$query = wpf_get_query('assegnazioni_risorsa', $post->ID);
	$columns = array(
			'title' => 'Assegnazione',
			'status' => 'Stato'
	);
	$options = array(
			'singular' => 'Assegnazione',
			'plural' => 'Assegnazioni',
			'ajax' => false,
			'actions' => array('edit' => 'Edit', 'unlink' => 'Unlink'),
			'comment' => 'code'
	);
	admin_table_posts($options, $columns, $query );
	$assegnazioni_nonassociate_list = query_posts(wpf_get_query('assegnazioni_nonassociate'));
	$assegnazioni_nonassociate = '<option></option>';
	foreach ($assegnazioni_nonassociate_list as $id => $assegnazione)
	{
		$assegnazioni_nonassociate .= '<option value="' . $assegnazione->ID . '">' . $assegnazione->post_title . '</option>';
	}
	echo '<select id="associa_assegnazione" name="associa_assegnazione">' . $assegnazioni_nonassociate . '</select>';
	//echo '<input type="submit" name="associa" id="associa-assegnazione" value="Associa"  class="button"/>';
	echo '<a href="post-new.php?post_type=wpf_assegnazione&parent=' . $post->ID . '" class="button">' . _('Aggiungi nuovo') . '</a>';
}

function wpf_risorsa_contratti_box()
{
	$form_fields = array(
    );

	register_post_box('wpf_risorsa', 'contratti', 'Contratti', 'normal', 'core', $form_fields);
}

// aggiunge le colonne della tabella
function wpf_risorsa_list_column_header( $cols ) {
    $newcols['cb'] = $cols['cb']; // <input type="checkbox"/>
    $newcols['title'] = 'Nome';
    $newcols['tipo'] = 'Tipologia';
    $newcols['status'] = 'Stato';
    $newcols['impegno'] = 'Impegno';

    foreach ($cols as $k => $v) $newcols[$k] = $v;
    return $newcols;
}


// aggiunge il contenuto della colonna nella tabella
function wpf_risorsa_list_column_row( $column_name, $id ) {
global $post;
    // verifico quale colonna sto riempiendo
    if ( $column_name == 'status' )         echo $post->post_status;
    if ( $column_name == 'tipo' )           echo get_the_term_list( $post->ID, 'tipologie', '', ', ', '' );
    if ( $column_name == 'impegno' )        echo "<b>Attualmente non impiegato</b></br>Impiego ultimo anno 450h";


}

// indica che la colonna  ordinabile
function wpf_risorsa_list_sort_columns($cols) {
	$cols['tipo'] = true;
        $cols['impegno'] = true;

	return $cols;
}

wpf_risorsa_hooks();

?>